package com.analysis.mapper;

import com.analysis.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户Mapper接口
 */
@Mapper
public interface UserMapper {
    
    /**
     * 插入用户
     */
    int insert(User user);
    
    /**
     * 根据ID删除用户
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 更新用户信息
     */
    int update(User user);
    
    /**
     * 根据ID查询用户
     */
    User selectById(@Param("id") Long id);
    
    /**
     * 根据账号查询用户
     */
    User selectByNick(@Param("nick") String nick);
    
    /**
     * 根据手机号查询用户
     */
    User selectByMobile(@Param("mobile") String mobile);
    
    /**
     * 根据微信openId查询用户
     */
    User selectByOpenId(@Param("openId") String openId);
    
    /**
     * 查询所有用户
     */
    List<User> selectAll();
    
    /**
     * 分页查询用户
     */
    List<User> selectByPage(@Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 统计用户总数
     */
    int countAll();
    
    /**
     * 根据条件查询用户
     */
    List<User> selectByCondition(@Param("nick") String nick, 
                                @Param("mobile") String mobile, 
                                @Param("enableStatus") Integer enableStatus);
}
